{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "from os import environ\n",
    "from sklearn.metrics import r2_score\n",
    "from sklearn.metrics import mean_squared_error \n",
    "\n",
    "environ['optimizer'] = 'Adam'\n",
    "environ['num_workers']= '2'\n",
    "environ['batch_size']= '8192'\n",
    "environ['n_epochs']= '1500'\n",
    "environ['batch_norm']= 'True'\n",
    "environ['loss_func']='MSE'\n",
    "environ['layers'] = '600 350 200 180'\n",
    "environ['dropouts'] = '0.3 '*4\n",
    "environ['log'] = 'False'\n",
    "environ['weight_decay'] = '0.01'\n",
    "environ['cuda_device'] ='cuda:0'\n",
    "environ['dataset'] = '/data/scratch/mmerouani/data/speedup_dataset_research_batch1001-2500.pkl'\n",
    "\n",
    "%run utils.ipynb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading data\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 458876/458876 [13:48<00:00, 553.55it/s] \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data loaded\n",
      "(458876, 3592)\n"
     ]
    }
   ],
   "source": [
    "print(\"loading data\")\n",
    "\n",
    "# train_dl, val_dl, test_dl = train_dev_split(dataset,val_size=10000, test_size=10000, batch_size=batch_size, num_workers=num_workers, log=log)\n",
    "train_dl, val_dl, test_dl = train_dev_split_transform(dataset,val_size=10000, test_size=10000, batch_size=batch_size, num_workers=num_workers, log=log,\n",
    "                                                     transform_func=lambda Y : 1/Y,\n",
    "                                                     filter_func=None)\n",
    "db = fai.basic_data.DataBunch(train_dl, val_dl, test_dl, device=device)\n",
    "\n",
    "print(\"data loaded\")\n",
    "print(val_dl.dataset.X.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<function mse_criterion at 0x7fb3cb050158>\n"
     ]
    }
   ],
   "source": [
    "input_size = train_dl.dataset.X.shape[1]\n",
    "output_size = train_dl.dataset.Y.shape[1]\n",
    "\n",
    "model = None \n",
    "\n",
    "if batch_norm:\n",
    "    model = Model_BN_ELU(input_size, output_size, hidden_sizes=layers_sizes, drops=drops)\n",
    "else:\n",
    "    model = Model(input_size, output_size)\n",
    "\n",
    "# model = nn.DataParallel(model)\n",
    "# model.to(device)\n",
    "\n",
    "if loss_func == 'MSE':\n",
    "    criterion = mse_criterion\n",
    "else:\n",
    "    criterion = mape_criterion\n",
    "\n",
    "l = fai.basic_train.Learner(db, model, loss_func=criterion, metrics=[mse_criterion],\n",
    "                            callback_fns=[partial(EarlyStoppingCallback, mode='min', \n",
    "                            monitor='mse_criterion', min_delta=0, patience=150)],silent=True)\n",
    "\n",
    "if optimizer == 'SGD':\n",
    "    l.opt_func = optim.SGD \n",
    "    \n",
    "print(criterion)    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "l.lr_find()\n",
    "l.recorder.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr = 1e-03"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "l.fit_one_cycle(1500, lr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "l.recorder.plot_losses()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "l.save(f\"speedup_{optimizer}_batch_norm_{batch_norm}_{loss_func}_nlayers_{len(layers_sizes)}_log_{log}_batch1001-2500_ELU_MSE_inverse\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "val_df = get_results_df(val_dl, l.model)\n",
    "train_df = get_results_df(train_dl, l.model)\n",
    "test_df=get_results_df(test_dl, l.model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>prediction</th>\n",
       "      <th>target</th>\n",
       "      <th>speedup</th>\n",
       "      <th>abs_diff</th>\n",
       "      <th>APE</th>\n",
       "      <th>SMAPE</th>\n",
       "      <th>interchange</th>\n",
       "      <th>tile</th>\n",
       "      <th>unroll</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>10000.00000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>4999.50000</td>\n",
       "      <td>11.098552</td>\n",
       "      <td>10.903996</td>\n",
       "      <td>0.438427</td>\n",
       "      <td>3.075651</td>\n",
       "      <td>66.447647</td>\n",
       "      <td>85.732559</td>\n",
       "      <td>0.757900</td>\n",
       "      <td>0.940400</td>\n",
       "      <td>0.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>2886.89568</td>\n",
       "      <td>23.467976</td>\n",
       "      <td>23.508726</td>\n",
       "      <td>0.384616</td>\n",
       "      <td>5.840970</td>\n",
       "      <td>85.896927</td>\n",
       "      <td>79.414223</td>\n",
       "      <td>0.428376</td>\n",
       "      <td>0.236756</td>\n",
       "      <td>0.433034</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.378068</td>\n",
       "      <td>0.004559</td>\n",
       "      <td>0.000561</td>\n",
       "      <td>0.040809</td>\n",
       "      <td>0.040818</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2499.75000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.288857</td>\n",
       "      <td>0.086719</td>\n",
       "      <td>0.954347</td>\n",
       "      <td>17.093031</td>\n",
       "      <td>17.113403</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>4999.50000</td>\n",
       "      <td>3.474495</td>\n",
       "      <td>3.233476</td>\n",
       "      <td>0.309265</td>\n",
       "      <td>1.355621</td>\n",
       "      <td>47.712870</td>\n",
       "      <td>50.623348</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>7499.25000</td>\n",
       "      <td>12.104778</td>\n",
       "      <td>11.531492</td>\n",
       "      <td>0.775881</td>\n",
       "      <td>2.601631</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>200.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>9999.00000</td>\n",
       "      <td>191.724838</td>\n",
       "      <td>219.370346</td>\n",
       "      <td>2.645030</td>\n",
       "      <td>64.777817</td>\n",
       "      <td>1059.229370</td>\n",
       "      <td>200.000015</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             index    prediction        target       speedup      abs_diff  \\\n",
       "count  10000.00000  10000.000000  10000.000000  10000.000000  10000.000000   \n",
       "mean    4999.50000     11.098552     10.903996      0.438427      3.075651   \n",
       "std     2886.89568     23.467976     23.508726      0.384616      5.840970   \n",
       "min        0.00000      0.000000      0.378068      0.004559      0.000561   \n",
       "25%     2499.75000      0.000000      1.288857      0.086719      0.954347   \n",
       "50%     4999.50000      3.474495      3.233476      0.309265      1.355621   \n",
       "75%     7499.25000     12.104778     11.531492      0.775881      2.601631   \n",
       "max     9999.00000    191.724838    219.370346      2.645030     64.777817   \n",
       "\n",
       "                APE         SMAPE   interchange          tile        unroll  \n",
       "count  10000.000000  10000.000000  10000.000000  10000.000000  10000.000000  \n",
       "mean      66.447647     85.732559      0.757900      0.940400      0.750000  \n",
       "std       85.896927     79.414223      0.428376      0.236756      0.433034  \n",
       "min        0.040809      0.040818      0.000000      0.000000      0.000000  \n",
       "25%       17.093031     17.113403      1.000000      1.000000      0.750000  \n",
       "50%       47.712870     50.623348      1.000000      1.000000      1.000000  \n",
       "75%      100.000000    200.000000      1.000000      1.000000      1.000000  \n",
       "max     1059.229370    200.000015      1.000000      1.000000      1.000000  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>prediction</th>\n",
       "      <th>target</th>\n",
       "      <th>speedup</th>\n",
       "      <th>abs_diff</th>\n",
       "      <th>APE</th>\n",
       "      <th>SMAPE</th>\n",
       "      <th>interchange</th>\n",
       "      <th>tile</th>\n",
       "      <th>unroll</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>10000.00000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>10000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>14999.50000</td>\n",
       "      <td>11.488132</td>\n",
       "      <td>11.780406</td>\n",
       "      <td>0.434748</td>\n",
       "      <td>2.922600</td>\n",
       "      <td>62.541176</td>\n",
       "      <td>86.289261</td>\n",
       "      <td>0.782900</td>\n",
       "      <td>0.947300</td>\n",
       "      <td>0.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>2886.89568</td>\n",
       "      <td>25.617477</td>\n",
       "      <td>25.610207</td>\n",
       "      <td>0.526266</td>\n",
       "      <td>5.782752</td>\n",
       "      <td>75.401016</td>\n",
       "      <td>81.565407</td>\n",
       "      <td>0.412292</td>\n",
       "      <td>0.223445</td>\n",
       "      <td>0.433034</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>10000.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.145649</td>\n",
       "      <td>0.004063</td>\n",
       "      <td>0.000078</td>\n",
       "      <td>0.000571</td>\n",
       "      <td>0.000571</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>12499.75000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.463150</td>\n",
       "      <td>0.088260</td>\n",
       "      <td>0.948128</td>\n",
       "      <td>15.817019</td>\n",
       "      <td>15.958954</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>14999.50000</td>\n",
       "      <td>2.718983</td>\n",
       "      <td>3.093708</td>\n",
       "      <td>0.323237</td>\n",
       "      <td>1.397799</td>\n",
       "      <td>42.369080</td>\n",
       "      <td>43.798750</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>17499.25000</td>\n",
       "      <td>11.731441</td>\n",
       "      <td>11.330190</td>\n",
       "      <td>0.683457</td>\n",
       "      <td>2.539973</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>200.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>19999.00000</td>\n",
       "      <td>220.992310</td>\n",
       "      <td>246.104568</td>\n",
       "      <td>6.865816</td>\n",
       "      <td>141.481262</td>\n",
       "      <td>840.645874</td>\n",
       "      <td>200.000015</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             index    prediction        target       speedup      abs_diff  \\\n",
       "count  10000.00000  10000.000000  10000.000000  10000.000000  10000.000000   \n",
       "mean   14999.50000     11.488132     11.780406      0.434748      2.922600   \n",
       "std     2886.89568     25.617477     25.610207      0.526266      5.782752   \n",
       "min    10000.00000      0.000000      0.145649      0.004063      0.000078   \n",
       "25%    12499.75000      0.000000      1.463150      0.088260      0.948128   \n",
       "50%    14999.50000      2.718983      3.093708      0.323237      1.397799   \n",
       "75%    17499.25000     11.731441     11.330190      0.683457      2.539973   \n",
       "max    19999.00000    220.992310    246.104568      6.865816    141.481262   \n",
       "\n",
       "                APE         SMAPE   interchange          tile        unroll  \n",
       "count  10000.000000  10000.000000  10000.000000  10000.000000  10000.000000  \n",
       "mean      62.541176     86.289261      0.782900      0.947300      0.750000  \n",
       "std       75.401016     81.565407      0.412292      0.223445      0.433034  \n",
       "min        0.000571      0.000571      0.000000      0.000000      0.000000  \n",
       "25%       15.817019     15.958954      1.000000      1.000000      0.750000  \n",
       "50%       42.369080     43.798750      1.000000      1.000000      1.000000  \n",
       "75%      100.000000    200.000000      1.000000      1.000000      1.000000  \n",
       "max      840.645874    200.000015      1.000000      1.000000      1.000000  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val_df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>prediction</th>\n",
       "      <th>target</th>\n",
       "      <th>speedup</th>\n",
       "      <th>abs_diff</th>\n",
       "      <th>APE</th>\n",
       "      <th>SMAPE</th>\n",
       "      <th>interchange</th>\n",
       "      <th>tile</th>\n",
       "      <th>unroll</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "      <td>438876.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>239437.500000</td>\n",
       "      <td>10.832894</td>\n",
       "      <td>11.355379</td>\n",
       "      <td>0.417869</td>\n",
       "      <td>1.869952</td>\n",
       "      <td>50.621685</td>\n",
       "      <td>81.134720</td>\n",
       "      <td>0.770386</td>\n",
       "      <td>0.943353</td>\n",
       "      <td>0.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>126692.732707</td>\n",
       "      <td>24.059313</td>\n",
       "      <td>24.043819</td>\n",
       "      <td>0.450577</td>\n",
       "      <td>2.339988</td>\n",
       "      <td>47.508152</td>\n",
       "      <td>83.214241</td>\n",
       "      <td>0.420585</td>\n",
       "      <td>0.231167</td>\n",
       "      <td>0.433013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>20000.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.037623</td>\n",
       "      <td>0.002826</td>\n",
       "      <td>0.000009</td>\n",
       "      <td>0.000106</td>\n",
       "      <td>0.000106</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>129718.750000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.414381</td>\n",
       "      <td>0.089580</td>\n",
       "      <td>0.794494</td>\n",
       "      <td>11.088913</td>\n",
       "      <td>11.078519</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>239437.500000</td>\n",
       "      <td>2.884928</td>\n",
       "      <td>3.154334</td>\n",
       "      <td>0.317024</td>\n",
       "      <td>1.226655</td>\n",
       "      <td>34.062506</td>\n",
       "      <td>35.285439</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>349156.250000</td>\n",
       "      <td>10.820855</td>\n",
       "      <td>11.163268</td>\n",
       "      <td>0.707023</td>\n",
       "      <td>2.011203</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>200.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>458875.000000</td>\n",
       "      <td>347.571716</td>\n",
       "      <td>353.865967</td>\n",
       "      <td>26.579260</td>\n",
       "      <td>98.714508</td>\n",
       "      <td>1013.419067</td>\n",
       "      <td>200.000015</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               index     prediction         target        speedup  \\\n",
       "count  438876.000000  438876.000000  438876.000000  438876.000000   \n",
       "mean   239437.500000      10.832894      11.355379       0.417869   \n",
       "std    126692.732707      24.059313      24.043819       0.450577   \n",
       "min     20000.000000       0.000000       0.037623       0.002826   \n",
       "25%    129718.750000       0.000000       1.414381       0.089580   \n",
       "50%    239437.500000       2.884928       3.154334       0.317024   \n",
       "75%    349156.250000      10.820855      11.163268       0.707023   \n",
       "max    458875.000000     347.571716     353.865967      26.579260   \n",
       "\n",
       "            abs_diff            APE          SMAPE    interchange  \\\n",
       "count  438876.000000  438876.000000  438876.000000  438876.000000   \n",
       "mean        1.869952      50.621685      81.134720       0.770386   \n",
       "std         2.339988      47.508152      83.214241       0.420585   \n",
       "min         0.000009       0.000106       0.000106       0.000000   \n",
       "25%         0.794494      11.088913      11.078519       1.000000   \n",
       "50%         1.226655      34.062506      35.285439       1.000000   \n",
       "75%         2.011203     100.000000     200.000000       1.000000   \n",
       "max        98.714508    1013.419067     200.000015       1.000000   \n",
       "\n",
       "                tile         unroll  \n",
       "count  438876.000000  438876.000000  \n",
       "mean        0.943353       0.750000  \n",
       "std         0.231167       0.433013  \n",
       "min         0.000000       0.000000  \n",
       "25%         1.000000       0.750000  \n",
       "50%         1.000000       1.000000  \n",
       "75%         1.000000       1.000000  \n",
       "max         1.000000       1.000000  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set:\n",
      "MSE: 43.57326889038086\n",
      "R-square score: 0.9211494653942405\n"
     ]
    }
   ],
   "source": [
    "print(\"Test set:\")\n",
    "print(f\"MSE: {mean_squared_error(np.array(test_df['target']), np.array(test_df['prediction']))}\")\n",
    "print(f\"R-square score: {r2_score(np.array(test_df['target']), np.array(test_df['prediction']))}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation set:\n",
      "MSE: 41.97845458984375\n",
      "R-square score: 0.9359906839134117\n"
     ]
    }
   ],
   "source": [
    "print(\"Validation set:\")\n",
    "print(f\"MSE: {mean_squared_error(np.array(val_df['target']), np.array(val_df['prediction']))}\")\n",
    "print(f\"R-square score: {r2_score(np.array(val_df['target']), np.array(val_df['prediction']))}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train set:\n",
      "MSE: 8.973251342773438\n",
      "R-square score: 0.984477366046974\n"
     ]
    }
   ],
   "source": [
    "print(\"Train set:\")\n",
    "print(f\"MSE: {mean_squared_error(np.array(train_df['target']), np.array(train_df['prediction']))}\")\n",
    "print(f\"R-square score: {r2_score(np.array(train_df['target']), np.array(train_df['prediction']))}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>prediction</th>\n",
       "      <th>target</th>\n",
       "      <th>abs_diff</th>\n",
       "      <th>APE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>32.000000</td>\n",
       "      <td>32.0</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>32.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.595547</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.752714</td>\n",
       "      <td>175.271362</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>2.100466</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.267664</td>\n",
       "      <td>126.766365</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.350441</td>\n",
       "      <td>35.044098</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>100.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>100.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.766825</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.766825</td>\n",
       "      <td>276.682465</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>5.354717</td>\n",
       "      <td>1.0</td>\n",
       "      <td>4.354717</td>\n",
       "      <td>435.471680</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       prediction  target   abs_diff         APE\n",
       "count   32.000000    32.0  32.000000   32.000000\n",
       "mean     1.595547     1.0   1.752714  175.271362\n",
       "std      2.100466     0.0   1.267664  126.766365\n",
       "min      0.000000     1.0   0.350441   35.044098\n",
       "25%      0.000000     1.0   1.000000  100.000000\n",
       "50%      0.000000     1.0   1.000000  100.000000\n",
       "75%      3.766825     1.0   2.766825  276.682465\n",
       "max      5.354717     1.0   4.354717  435.471680"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = val_df\n",
    "df[(df.interchange==0) & (df.unroll == 0) & (df.tile == 0)][['prediction','target', 'abs_diff','APE']].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAacAAAGqCAYAAACvcYtGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de5hU1Zku8Per6k1TTUNXc5fSFjERlEFpJUGDZ6KMI1EiEogSQ2IyUSfmMsZbKygjiE7oORyNZ3LOOFGTGY1IgIgVDE8GL3ASRwVFG0QITLxEsNAIQnHrAqqr1/lj1y6qq/eu2nXZVbtqv7/n6Ud61211q/tlrfWttUQpBSIiIjfxVboBREREmRhORETkOgwnIiJyHYYTERG5DsOJiIhch+FERESuw3CimiAiH4vIhZVuR7URkXYReazS7SDKVG3hpPjlnq/GxsbUl8/nU4FAIPX9kiVLCn7f888/Xz355JN5vWbYsGHDXnrppZdyPe/o0aNKRNSHH37o6O+mkM/52te+pkREPffccz2u33jjjUpE1K9+9avUe990000qFAqpxsZGNWrUKHXnnXemnj98+HDV0NDQ49/PbbfdZvqZd955553XXXfddZX+b8nDX2ShrtINoOp1+PDh1J9HjhyJxx57DJdcckkFW1T9zjjjDDz++OO49NJLAQDHjh1DOBzGyJEjU8+599578cc//hFvvvkmhg4divfffx+vvvpqj/d57rnncOGF7EhS9aq2nhNVkUQigfvuuw+jRo3C4MGDMXv2bESjUQDAkSNH8LWvfQ0DBw5EMBjExIkTsX//ftx22214/fXXcf3116OxsRG33Xab6Xv//Oc/R0tLC4YMGYLFixf3eOzll1/GxIkT0dTUhBEjRuCWW25BV1cXAOCv//qvAQCjR49GY2MjwuEw9uzZg8suuwxDhgzBwIEDceWVV+Kjjz5Kvd+jjz6KkSNHon///hg1ahRWrFiReuxnP/sZRo8ejYEDB2Lq1KmIRCKWn2PHjBkz8MILL+DQoUMAgGeffRYXXHABBg0alHrO66+/jpkzZ2LYsGEQEYwaNQqzZ8+29f65PP300zjrrLMQDAZxySWX4E9/+lPqsfvuuw8nnXQSBgwYgDPPPBN6R1X/fbe2tmLAgAEYPnw45s6dW5K2kMcpparpqyhL1n/Q64tK49RTT1XPP/98j2uLFi1SF154oYpEIioWi6lvfetb6tvf/rZSSqmHHnpIzZw5U3V2dqp4PK5ee+01dfjwYaWUUhMnTlS//OUvLT+ro6NDNTY2qldeeUUdPXpUff/731d+v1+99NJLSimlNmzYoF577TXV1dWl3nnnHXX66aerhx9+WCmlVCwWUwDUrl27Uu/38ccfq3A4rDo7O1U0GlXTpk1Ts2bNUkoptW/fPtXU1KTeeecdpZRSH374odq2bZtSSqmlS5eqMWPGqB07dqjjx4+ru+++W1100UWWn5PLrFmz1H333ae++c1vql/84hdKKaWuuOIKtXLlSnXeeeeppUuXKqWUuvvuu9XIkSPVww8/rN5+++1e7zNs2LDU7yKXO++8U1133XVKKaW2bNmiGhsb1bp169SxY8fUwoUL1ZgxY1Q8HlebNm1Sp512mvr4449Vd3e3evfdd9V7772nlFJq/Pjxavny5UoppQ4ePKjWr19v+2emit9TXfvFnhM55mc/+xna29sxYsQI9O3bF/Pnz8eyZcuglIKmadizZw/effdd1NXV4XOf+xz69etn632XL1+OmTNn4oILLkB9fT1+/OMfo7u7O/X45z//eXzuc5+D3+/H6aefjuuvvx6///3vLd9v2LBhuPLKKxEIBNDU1IS5c+f2ev7bb7+No0ePIhQK4cwzz0z9fPPmzcMZZ5wBTdMwf/58/Nd//Rf+8pe/FPDbOuHaa6/FE088gb179+L111/H1KlTezw+f/583HzzzXj88cdx7rnn4uSTT8bSpUt7POeyyy5DMBhMff3yl7/M+blLly7FV77yFVx00UXo06cP7rrrLuzduxcbN25EXV0dYrEYtm3bhkQigVGjRuG0004DAGiahv/+7//Gp59+iv79+2PixIlF/fxEAIf1yCFKKezatQuXX3556gbZ2tqK7u5ufPrpp7juuuvwxS9+EV/96ldx8skn46677kIikbD13rt378Ypp5yS+r6pqQlNTU2p77dt24bLLrsMw4YNw4ABA7Bw4ULs3bvX8v0OHTqE73znO2hpacGAAQNw6aWXpp7f3NyMJUuW4F/+5V8wfPhwTJs2De+88w4A4IMPPsCNN96Y+vmGDBmCuro6fPjhh4X8ylImT56M9957D+3t7ZgxYwb69OnT43FN0/CjH/0Ir776Kvbv349bb70V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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAacAAAGqCAYAAACvcYtGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de5hT1b038O8vmQAZGMiMIELkbgscCgw6LShtRds6WoSONyiC1rbS2lPbijKnwOGVsXoUO1U59jlqSz21KligxYiiRVuwT18VFN8BByxULQJmKvdwDUxmZr1/5EKS2TvZuexkJ/l+nicPzM5lr5mBfLPWXuu3RCkFIiIiK7HluwFERETxGE5ERGQ5DCciIrIchhMREVkOw4mIiCyH4URERJbDcKK0iMhgEVEiUhb6+hUR+ZaRx6ZxrgUi8ptM2mvwPBm1s5SJyOsicmu+20HFo9DCSfGWnVttba26++67Ox1/4YUX1Hnnnafa2toSPn/Xrl27ACAQCAQAKKXUlUqpp4w8NtHt9ddfV+eff37MMaXUfymlvmv2zyTTdppxS+c8gwcPVl26dFEHDx6MOV5dXa1ERH388ccKgPrkk0/Uddddp3r37q169eqlRo8erZ566ikFQH388cdKRFSPHj1ibitWrNA856WXXnrp0qVLl5r98yjCG+kotHCiLLnlllvwzDPPIH4R9jPPPIOZM2eirIydh0I2ZMgQPPfcc5Gvm5ub4ff7Yx5z0003YcCAAdi9ezcOHTqEp59+Gn379o15jM/nw4kTJyK36dOn56T9RAynElVXV4fDhw/jb3/7W+TYkSNH8NJLL+Hmm28GAKxduxbjxo1Dz549MWDAADQ0NOi+3qRJk/Cb3wRH3trb2zF37lz07t0bQ4cOxdq1a2Me+9vf/hYjR45ERUUFhg4dil/96lcAgJMnT+Kqq65CS0sLevTogR49eqClpQUNDQ2YNWtW5Plr1qzBqFGj4HK5MGnSJPz973+P3Dd48GD84he/wJgxY9CrVy9Mnz4dp0+f1mxzttv59ttv4+KLL4bL5UK/fv1w++23o7W1FQCglMKcOXNw7rnnolevXhgzZgy2bdsGADhz5gzmzp2LgQMHom/fvrjtttvg9/t1z2PETTfdhKeffjry9e9+97vI7zXsnXfewS233ILu3bujrKwM48aNw1VXXWXo9RPp6OjAfffdh0GDBuHcc8/FzTffjKNHjwIATp8+jVmzZuGcc86By+XC5z//eezbtw8A8NRTT2Ho0KGoqKjAkCFDsGzZsozbQgVMKVVIt7Qt27hb81bKbr31VvXd73438vUTTzyhxo4dG/l6w4YN6r333lPt7e1q69at6txzz1XPP/+8UkqpXbt2KQAqEAgopZS69NJL1dKlS5VSSj3++ONq+PDhas+ePerQoUNq0qRJMY996aWX1Icffqg6OjrU66+/rpxOp3r33Xcj53S73THtXLRokZo5c6ZSSqmdO3eq8vJy9eqrr6rW1lb14IMPqmHDhqkzZ84opZQaNGiQ+vznP6+8Xq86dOiQGjFihHr88cc1v/9st3Pz5s3qrbfeUoFAQO3atUuNGDFCPfLII0oppf70pz+pCy+8UB05ckR1dHSo999/X7W0tCillPrJT36ipkyZog4dOqSOHTumrr76ajVv3jzd8yQzaNAg9dprr6nPfvaz6v3331dtbW3q/PPPjwzn7dq1Syml1Fe+8hV1ySWXqOeee07t3h37fyH+95tM9O//ySefVMOGDVMfffSROn78uLrmmmvUrFmzlFLBf2NXX321OnnypGpra1ObN29WR48eVSdOnFAVFRVqx44dSimlWlpa1LZt21L6vgtUvt9TLXtjz6mEfetb38KqVasiwz1PP/00vvWtb0XunzRpEkaPHg2bzYYxY8ZgxowZ+Otf/5r0dVeuXIk77rgDAwYMQFVVFebPnx9z/+TJkzFs2DCICC699FJcccUVMT24RFasWIHJkyfja1/7GhwOB+bOnQu/348333wz8pgf//jH6N+/P6qqqjBlyhRs2bIlJ+286KKLMGHCBJSVlWHw4MH4/ve/H/l5ORwOHD9+HDt27IBSCiNHjkS/fv2glMLSpUvxyCOPoKqqChUVFViwYAF+//vfG/p5JBLuPb322msYMWIE3G53zP2rVq3Cl770Jdx7770YMmQIqqur8c4778Q8pnfv3nC5XJFbdC9Vz7Jly3DnnXdi6NCh6NGjBx544AH8/ve/R1tbGxwOBw4dOoQPP/wQdrsdF110EXr27AkAsNls2LZtG/x+P/r164dRo0Zl/DOgwsVwKmFf/OIX0adPH7zwwgv45z//iXfeeQc33nhj5P5NmzbhsssuQ58+fdCrVy888cQTOHjwYNLXbWlpwYABAyJfDxo0KOb+V155BRMmTEBVVRVcLhdefvllQ68bfu3o17PZbBgwYAC8Xm/k2HnnnRf5e3l5OU6cOJGTdv7jH//A1VdfjfPOOw89e/bEggULIo+//PLLcfvtt+OHP/wh+vbti+9973s4duwYDhw4gFOnTuGiiy6KBMCVV16JAwcOGPp5JHLTTTdh+fLleOqppzoN6QFAZWUlFi9ejO3bt2Pfvn2orq5GXV1dzHXIgwcPwufzRW4jR45Met7439GgQYPQ1taGffv24aabbkJtbS2++c1von///viP//gPBAIBdO/eHStWrMATTzyBfv36YfLkydixY0fGPwMqXAynEnfzzTfj6aefxjPPPIMrrrgi5oL4jTfeiKlTp2Lv3r04evQobrvttk4TKLT069cPe/fujXy9Z8+eyN/PnDmD6667DnPnzsW+ffvg8/nw9a9/PfK6IpLwtfv374/du3dHvlZKYe/evZ16BUZku50/+MEPMGLECHzwwQc4duwY7r///pif149//GO8++672L59O/7xj3+gsbERvXv3htPpxPbt2yMBcPTo0UigJvt5JDJo0CAMGTIEL7/8Mq699tqEj+3duzfmzp2LlpYWHD58OO1zAp1/R3v27EFZWRn69u0Lh8OBRYsW4f3338ebb76Jl156KXJtrLa2Fq+99hr+9a9/YcSIEZg9e3ZG7aDCxnAqcTfffDP+/Oc/Y+nSpTFDegBw/PhxVFVVoVu3bnj77bexfPlyQ685bdo0PProo/jkk09w5MgRLF68OHJfa2srzpw5gz59+qCsrAyvvPIKXn311cj9ffv2xaFDhyIX0LVee+3atfjLX/6CQCCAhx56CF27dsUll1yS8vee7XYeP34cPXv2RI8ePbBjxw48/vjjkfveeecdbNq0KdJL6NatG+x2O2w2G2bPno05c+Zg//79AACv14t169bpnuf11183HFpPPvkk1q9fj+7du3e676c//Sm2bduGtrY2HD9+HI8//jguuOACnHPOOQZ/gtpmzJiBRx55BLt27cKJEyewYMECTJ8+HWVlZdiwYQOam5vR3t6Onj17wuFwwG63Y9++fVizZg1OnjyJrl27okePHrDb7Rm1gwobw6nEDR48GJdccglOnjyJqVOnxtz32GOP4e6770ZFRQV+9rOfYdq0aYZec/bs2ait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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# df1 = val_df[(df.interchange==0) & (df.unroll == 0) & (df.tile == 0)]\n",
    "df1 = test_df\n",
    "\n",
    "joint_plot(df1, f\"Test dataset, {loss_func} loss\")\n",
    "df2 = val_df\n",
    "joint_plot(df2, f\"Validation dataset, {loss_func} loss\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_ = val_df.sort_values(by=[\"abs_diff\"])\n",
    "\n",
    "df_['x'] = range(len(df_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fb3c6ea0f98>"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAACO8AAAaMCAYAAABNAyoyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdb4hld33H8c9vMiHLNeLGbEqr6+wsRWKSsrq7YxP8W5HalIToMxPuUkkLY2lAEJsUGUhAmAeaB8UQW52CxpKrtQgFIQlUBY1iQpmNxJomraFxZqe2ZLIxAZ1sMZvTB3c32U0mm53dnf3eu329YDn3fM/98915/Oac1nVdAAAAAAAAAACAs2+iegEAAAAAAAAAAPj/SrwDAAAAAAAAAABFxDsAAAAAAAAAAFBEvAMAAAAAAAAAAEXEOwAAAAAAAAAAUES8AwAAAAAAAAAARSarFzhd27Zt66anp6vXAAAAAAAAAACAde3fv/+prusuWe/a2Mc709PTWVxcrF4DAAAAAAAAAADW1VpberVrHpsFAAAAAAAAAABFxDsAAAAAAAAAAFBEvAMAAAAAAAAAAEUmqxcAAAAAAAAAAGC0/eY3v8nKykoOHTpUvcpI27JlS7Zv357zzz//pD8j3gEAAAAAAAAA4IRWVlby+te/PtPT02mtVa8zkrquy8GDB7OyspKdO3ee9Oc8NgsAAAAAAAAAgBM6dOhQLr74YuHOCbTWcvHFF2/47kTiHQAAAAAAAAAAXpNw57Wdyt9IvAMAAAAAAAAAAEXEOwAAAAAAAAAAjK0LL7zwjH7f9PR0nnrqqSTJu971rhfnN998c6644orcfPPNWV1dzZVXXpndu3fnBz/4wWn9nngHAAAAAAAAAIAzajBIpqeTiYnhcTCo3ujU/OhHP3rx9Ze+9KU89NBDuf322/Pd7343b3vb2/LjH/84733ve0/rN8Q7AAAAAAAAAACcMYNBMjubLC0lXTc8zs6emYDnIx/5SPbu3ZsrrrgiCwsLL84/9alPZc+ePfngBz+Y1dXVJMkdd9yRyy+/PLt27cr111//qt958ODBfOhDH8ru3bvz8Y9/PF3XvXjt6F19rrvuuvz617/OlVdemc9+9rO55ZZbcu+99+Yd73hHnnvuudP6P7Vjf3AczczMdIuLi9VrAAAAAAAAAACcsx599NFcdtllJ/Xe6elhsPNyO3YkP//56e3x9NNP541vfGOee+65vPOd78z3v//9bNu2LXfffXf6/X4+85nP5Mknn8ydd96ZN73pTXniiSdywQUX5JlnnsnWrVvX/c5PfOIT2bZtW2699dbcc889ufbaa7O6uppt27blwgsvzK9+9askOe71XXfdlcXFxdx5552v+L71/lattf1d182s9/vuvAMAAAAAAAAAwBmzvLyx+Ubccccdefvb356rrroqBw4cyM9+9rNMTEzkox/9aJJk3759+eEPf5gk2bVrV/r9fu6+++5MTk6+6nfef//92bdvX5LkmmuuyUUXXXT6i26AeAcAAAAAAAAAgDNmampj85P1ve99L9/5znfywAMP5OGHH87u3btz6NChV7yvtZYkueeee3LTTTdl//792bt3b55//vlX/e6jn6kg3gEAAAAAAAAA4IyZn096veNnvd5wfjqeffbZXHTRRen1ennsscfy4IMPJkleeOGFfPOb30ySfO1rX8t73vOevPDCCzlw4EA+8IEP5HOf+1yeeeaZFx959XLve9/7MhgMkiT33XdffvnLX57eohv06vcEAgAAAAAAAACADer3h8e5ueGjsqamhuHO0fmpuvrqq/PFL34xu3btyqWXXpqrrroqSfK6170ujzzySPbu3Zs3vOEN+cY3vpHDhw9n3759efbZZ9N1XT75yU9m69at637vbbfdlhtuuCF79uzJ+9///kyd7i2CNqh1XXdWf/BMm5mZ6RYXF6vXAAAAAAAAAAA4Zz366KO57LLLqtcYC+v9rVpr+7uum1nv/R6bBQAAAAAAAAAARTw2CwAAAAAAAACAc95XvvKVfP7znz9u9u53vztf+MIXijYaEu8AAAAAAAAAAHDOu/HGG3PjjTdWr/EKHpsFAAAAAAAAAMBr6rqueoWRdyp/I/EOAAAAAAAAAAAntGXLlhw8eFDAcwJd1+XgwYPZsmXLhj7nsVkAAAAAAAAAAJzQ9u3bs7KyktXV1epVRtqWLVuyffv2DX1GvAMAAAAAAAAAwAmdf/752blzZ/Ua5ySPzQIAAAAAAAAAgCLiHQAAAAAAAAAAKCLeAQAAAAAAAACAIuIdAAAAAAAAAAAoIt4BAAAAAAAAAIAi4h0AAAAAAAAAACgi3gEAAAAAAAAAgCLiHQAAAAAAAAAAKCLeAQAA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ACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgRLwDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQIl4BwAAAAAAAAAASsQ7AAAAAAAAAABQIt4BAAAAAAAAAIAS8Q4AAAAAAAAAAJSIdwAAAAAAAAAAoES8AwAAAAAAAAAAJeIdAAAAAAAAAAAoEe8AAAAAAAAAAECJeAcAAAAAAAAAAErEOwAAAAAAAAAAUCLeAQAAAAAAAACAEvEOAAAAAAAAAACUiHcAAAAAAAAAAKBEvAMAAAAAAAAAACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgRLwDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQIl4BwAAAAAAAAAASsQ7AAAAAAAAAABQIt4BAAAAAAAAAIAS8Q4AAAAAAAAAAJSIdwAAAAAAAAAAoES8AwAAAAAAAAAAJeIdAAAAAAAAAAAoEe8AAAAAAAAAAECJeAcAAAAAAAAAAErEOwAAAAAAAAAAUCLeAQAAAAAAAACAEvEOAAAAAAAAAACUiHcAAAAAAAAAAKBEvAMAAAAAAAAAACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgRLwDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQIl4BwAAAAAAAAAASsQ7AAAAAAAAAABQIt4BAAAAAAAAAIAS8Q4AAAAAAAAAAJSIdwAAAAAAAAAAoES8AwAAAAAAAAAAJeIdAAAAAAAAAAAoEe8AAAAAAAAAAECJeAcAAAAAAAAAAErEOwAAAAAAAAAAUCLeAQAAAAAAAACAEvEOAAAAAAAAAACUiHcAAAAAAAAAAKBEvAMAAAAAAAAAACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgRLwDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQIl4BwAAAAAAAAAASsQ7AAAAAAAAAABQIt4BAAAAAAAAAIAS8Q4AAAAAAAAAAJSIdwAAAAAAAAAAoES8AwAAAAAAAAAAJeIdAAAAAAAAAAAoEe8AAAAAAAAAAECJeAcAAAAAAAAAAErEOwAAAAAAAAAAUCLeAQAAAAAAAACAEvEOAAAAAAAAAACUiHcAAAAAAAAAAKBEvAMAAAAAAAAAACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgRLwDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQIl4BwAAAAAAAAAASsQ7AAAAAAAAAABQIt4BAAAAAAAAAIAS8Q4AAAAAAAAAAJSIdwAAAAAAAAAAoES8AwAAAAAAAAAAJeIdAAAAAAAAAAAoEe8AAAAAAAAAAECJeAcAAAAAAAAAAErEOwAAAAAAAAAAUCLeAQAAAAAAAACAEvEOAAAAAAAAAACUiHcAAAAAAAAAAKBEvAMAAAAAAAAAACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgRLwDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQEkt3pmZD8/M92fmezPz+Zl54czcPjMPz8xjM/MvM/OC1nwAAAAAAAAAALC1SrwzMzcnuS/JybXW65L8QZL3JvlEkk+tte5I8vMkH2zMBwAAAAAAAAAAz4XmtVnHkrxoZo4lOZ7kJ0neluSLu+8fTHJPaTYAAAAAAAAAANhcJd5Za/1Pkk8mOZe9aOeXSR5N8ou11m93255McvOVfj8zp2fmkZl55Pz588/FyAAAAAAAAAAAcM21rs16WZK7k9ye5E+T3JjkzitsXVf6/VrrzFrr5Frr5IkTJ7YbFAAAAAAAAAAANtS6NusdSX601jq/1vpNki8leXOSm3bXaCXJLUl+XJoPAAAAAAAAAAA214p3ziV508wcn5lJ8vYkP0jyH0n+Yrfn3iQPleYDAAAAAAAAAIDNVeKdtdbDSb6Y5NtJvrub40ySjyb5m5l5PMkrkvxDYz4AAAAAAAAAAHguHNt/yzbWWvcnuf+y5R8meWNhHAAAAAAAAAAAeM61rs0CAAAAAAAAAIAjT7wDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQIl4BwAAAAAAAAAASsQ7AAAAAAAAAABQIt4BAAAAAAAAAIAS8Q4AAAAAAAAAAJSIdwAAAAAAAAAAoES8AwAAAAAAAAAAJeIdAAAAAAAAAAAoEe8AAAAAAAAAAECJeAcAAAAAAAAAAErEOwAAAAAAAAAAUCLeAQAAAAAAAACAEvEOAAAAAAAAAACUiHcAAAAAAAAAAKBEvAMAAAAAAAAAACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgRLwDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQIl4BwAAAAAAAAAASsQ7AAAAAAAAAABQIt4BAAAAAAAAAIAS8Q4AAAAAAAAAAJSIdwAAAAAAAAAAoES8AwAAAAAAAAAAJeIdAAAAAAAAAAAoEe8AAAAAAAAAAECJeAcAAAAAAAAAAErEOwAAAAAAAAAAUCLeAQAAAAAAAACAEvEOAAAAAAAAAACUiHcAAAAAAAAAAKBEvAMAAAAAAAAAACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgRLwDAAAAAAAAAAAl4h0AAAAAAAAAACgR7wAAAAAAAAAAQIl4BwAAAAAAAAAASsQ7AAAAAAAAAABQIt4BAAAAAAAAAIAS8Q4AAAAAAAAAAJSIdwAAAAAAAAAAoES8AwAAAAAAAAAAJeIdAAAAAAAAAAAoEe8AAAAAAAAAAECJeAcAAAAAAAAAAErEOwAAAAAAAAAAUCLeAQAAAAAAAACAEvEOAAAAAAAAAACUiHcAAAAAAAAAAKBEvAMAAAAAAAAAACXiHQAAAAAAAAAAKBHvAAAAAAAAAABAiXgHAAAAAAAAAABKxDsAAAAAAAAAAFAi3gEAAAAAAAAAgBLxDgAAAAAAAAAAlIh3AAAAAAAAAACgZN94Z2besnv+0fbjAAAAAAAAAADA0XGQk3ce2D2/ueUgAAAAAAAAAABw1Bw7wJ7fzMw/JbllZh64/Mu11n3XfiwAAAAAAAAAALj+HSTeeVeSdyR5W5JHtx0HAAAAAAAAAACOjoPEOx9Za310Zm5daz24+UQAAAAAAAAAAHBE3HCAPXfNzB8mee/WwwAAAAAAAAAAwFFykJN3vpbkqSQ3zsyvLlmfJGut9ZJNJgMAAAAAAAAAgOvcvifvrLU+stZ6aZJ/W2u95JLXi4U7AAAAAAAAAADw7B3k2qwkyVrr7i0HAQAAAAAAAACAo2bfeGdm/mv3/PXM/Ory5/YjAgAAAAAAAADA9enYfhvWWm/dPV+8/TgAAAAAAAAAAHB07BvvzMzL/7/v11pPX7txAAAAAAAAAADg6Ng33knyaJKVZJLcmuTnu/c3JTmX5PbNpgMAAAAAAAAAgOvYDfttWGvdvtZ6bZKvJ3n3WuuVa61XJHlXki9tPSAAAAAAAAAAAFyv9o13LvGGtdZXLn5Ya301yZ9d+5EAAAAAAAAAAOBoOMi1WRc9NTN/l+Rz2btG6/1J/neTqQAAAAAAAAAA4Ai4mpN33pfkRJIv714ndmsAAAAAAAAAAMCzcOCTd9ZaTyf50DN9PzOfXmv99TWZCgAAAAAAAAAAjoCrOXlnP2+5hv8FAAAAAAAAAADXvWsZ7wAAAAAAAAAA/I69+3ux/L7rOP767G43MkvTukMUMZxdhVLxRipRFEFae1dFI9alcJAglb0ISKHgL86Fgs6FVza9aMjQokGOtKUXVjQUSk0VIhRS26u0paV0xlC1a9NS7TR1nX68OLMma2eaPbtzzvt8dh8PCN/5vL8z2fcf8OTzBZYg3gEAAAAAAAAAgCKnGe+0U/x/AQAAAAAAAADAXe+24p3W2pnW2v3/b/zYKewDAAAAAAAAAAD3jFuOd1prf9Vau7+1diHJc0k+11r7nRvve+9/sYL9AAAAAAAAAADgrrXMzTs/3nv/RpKHkzyVZJLkN1ayFQAAAAAAAAAA3AOWiXde1Vp7VRbxzod779eT9NWsBQAAAAAAAAAAd79l4p0nknwpyYUk/9hau5TkG6tYCgAAAAAAAAAA7gXnbvUXe+/vTvLul432WmtvOv2VAAAAAAAAAADg3nDLN++01rZba+9urf1za+2TrbXHkrxmhbsBAAAAAAAAAMBdbZnPZr0/ybUkv5bkrUc/f2AVSwEAAAAAAAAAwL3glj+bleRi7/2PX3b+k9baw6e9EAAAAAAAAAAA3CuWuXnn6dba21prZ47+u5Lk71a1GAAAAAAAAAAA3O1e8ead1tp/JulJWpJ3JvnLo1dnk/xXkj9c2XYAAAAAAAAAAHAXe8V4p/f+6hs/t9YuJnldku9b5VIAAAAAAAAAAHAveMV454bW2m8leUeSB5N8OsnPJPmnJG9ezWoAAAAAAAAAAHB3O7PE774jyU8l2eu9vynJG5L8x0q2AgAAAAAAAACAe8Ay8c6LvfcXk6S1dl/v/bNJXr+atQAAAAAAAAAA4O53y5/NSvJ8a+21Sf46yUdba19L8uXVrAUAAAAAAAAAAHe/W453eu+/evTjH7XWnk7ymiQfWclWAAAAAAAAAABwD1jm5p3/03v/h9NeBAAAAAAAAAAA7jVnqhcAAAAAAAAAAIB7lXgHAAAAAAAAAACKiHcAAAAAAAAAAAY2nyeXLydnziye83n1RizjXPUCAAAAAAAAAADcnvk8uXo1OThYnPf2FuckmU7r9uLWuXkHAAAAAAAAAGBQs9lL4c4NBweLOWMQ7wAAAAAAAAAADGp/f7k5m0e8AwAAAAAAAAAwqMlkuTmbR7wDAAAAAAAAADConZ1ka+vm2dbWYs4YxDsAAAAAAAAAAIOaTpPd3eTSpaS1xXN3dzFnDOeqFwAAAAAAAAAA4PZNp2Kdkbl5BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqUxTuttde21j7UWvtsa+0zrbWfba1dbK19tLX2+aPn91ftBwAAAAAAAAAAq1Z5885jST7Se/+xJD+R5DNJfj/Jx3rvr0vysaMzAAAAAAAAAADclUrindba/Ul+Psn7kqT3/t+9968n+ZUkTx792pNJHq7YDwAAAAAAAAAA1qHq5p0fTXItyZ+31j7VWntva+1Ckh/svf9rkhw9f6BoPwAAAAAAAAAAWLmqeOdckp9M8njv/Q1JvpklPpHVWrvaWnu2tfbstWvXVrUjAAAAAAAAAACsVFW883yS53vvnzg6fyiLmOffW2s/lCRHz68c98e9993e+0O994ceeOCBtSwMAAAAAAAAAACnrSTe6b3/W5J/aa29/mj05iTPJfmbJI8czR5J8uGC9QAAAAAAAAAAYC3OFf7bv51k3lo7n+SLSX4zi5jog621tyfZT/LrhfsBAAAAAAAAAMBKlcU7vfdPJ3nomFdvXvcuAAAAAAAAAABQoeSzWQAAAAAAAAAAgHgHAAAAAAAAAADKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAGBg83ly+XJy5sziOZ9Xb8QyzlUvAAAAAAAAAADA7ZnPk6tXk4ODxXlvb3FOkum0bi9unZt3AAAAAAAAAAAGNZu9FO7ccHCwmDMG8Q4AAAAAAAAAwKD295ebs3nEOwAAAAAAAAAAg5pMlpuzecQ7AAAAAAAAAACD2tlJtrZunm1tLeaMQbwDAAAAAAAAADCo6TTZ3U0uXUpaWzx3dxdzxnCuegEAAAAAAAAAAG7fdCrWGZmbdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIyfbk4AAAIABJREFUdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAGBg83ly+XJy5sziOZ9Xb8QyzlUvAAAAAAAAAADA7ZnPk6tXk4ODxXlvb3FOkum0bi9unZt3AAAAAAAAAAAGNZu9FO7ccHCwmDMG8Q4AAAAAAAAAwKD295ebs3nEOwAAAAAAAAAAg5pMlpuzecQ7AAAAAAAAAACD2tlJtrZunm1tLeaMQbwDAAAAAAAAADCo6TTZ3U0uXUpaWzx3dxdzxnCuegEAAAAAAAAAAG7fdCrWGZmbdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoIh4BwAAAAAAAAAAioh3AAAAAAAAAACgiHgHAAAAAAAAAACKiHcAAAAAAAAAAKCIeAcAAAAAAAAAAIqIdwAAAAAAAAAAoEhpvNNaO9ta+1Rr7W+Pzj/SWvtEa+3zrbUPtNbOV+4HAAAAAAAAAACrVH3zzjuSfOZl5z9N8me999cl+VqSt5dsBQAAAAAAAAAAa1AW77TWHkzyi0nee3RuSX4hyYeOfuXJJA/XbAcAAAAAAAAAsPnm8+Ty5eTMmcVzPq/eiGWdK/y335Xkd5O8+ui8neTrvff/OTo/n+SHKxYDAAAAAAAAANh083ly9WpycLA47+0tzkkyndbtxXJKbt5prf1Skq/03j/58vExv9pP+PurrbVnW2vPXrt2bSU7AgAAAAAAAABsstnspXDnhoODxZxxVH026+eS/HJr7UtJ3p/F57LeleS1rbUbtwE9mOTLx/1x73239/5Q7/2hBx54YB37AgAAAAAAAABslP395eZsppJ4p/f+B733B3vvl5O8Lcnf996nSZ5O8tajX3skyYcr9gMAAAAAAAAA2HSTyXJzNlPVzTsn+b0k72ytfSHJdpL3Fe8DAAAAAAAAALCRdnaSra2bZ1tbiznjOPfKv7JavfePJ/n40c9fTPLTlfsAAAAAAAAAAIxgOl08Z7PFp7Imk0W4c2POGDbt5h0AAAAAAAAAAG7RM88kzz+f9L54PvNM9UYsq/zmHQAAAAAAAAAAlvfoo8njj790Pjx86fye99TsxPLcvAMAAAAAAAAAMKDd3eXmbCbxDgAAAAAAAADAgA4Pl5uzmcQ7AAAAAAAAAAADOnt2uTmbSbwDAAAAAAAAADCgN75xuTmbSbwDAAAAAAAAADCgL3xhuTmbSbwDAAAAAAAAADCg/f3l5mwm8Q4AAAAAAAAAwIAmk+XmbCbxDgAAAAAAAADAgHZ2kq2tm2dbW4s54xDvAAAAAAAAAAAMaDpNHnkkOXt2cT57dnGeTmv3YjniHQAAAAAAAACAAc3nyZNPJoeHi/Ph4eI8n9fuxXLEOwAAAAAAAAAAA5rNkoODm2cHB4s54xDvAAAAAAAAAAAMaG/v+Pn+/nr34M6IdwAAAAAAAAAABjOfJ60d/24yWe8u3BnxDgAAAAAAAADAYGazpPfvnreW7Oysfx9un3gHAAAAAAAAAGAwJ30aq/dkOl3vLtwZ8Q4AAAAAAAAAwGAuXjx+vr293j24c+IdAAAAAAAAAAAoIt4BAAAAAAAAABjMCy8sN2dziXcAAAAAAAAAAAZz0mezTpqzucQ7AAAAAAAAAABQRLwDAAAAAAAAADAYn826e4h3AAAAAAAAAAAGM5ksN2dziXcAAAAAAAAAAAazs5OcP3/z7Pz5xZyxiHcAAAAAAAAAAAbU+/c+MwbxDgAAAAAAAADAYGaz5Pr1m2fXry/mjEW8AwAAAAAAAAAwmP395eZsLvEOAAAAAAAAAMBgJpPl5mwu8Q4AAAAAAAAAwGB2dpLz52+enT+/mDMW8Q4AAAAAAAAAwIB6/95nxiDeAQAAAAAAAAAYzGyWXL9+8+z69cWcsYh3AAAAAAAAAAAGs7d3/Hx/f717cOfEOwAAAAAAAAAAA5nPk9aOfzeZrHcX7px4BwAAAAAAAABgILNZ0vt3z1tLdnbWvw93RrwDAAAAAAAAADCQkz6Z1Xsyna53F+6ceAcAAAAAAAAAYCBnzy43Z7OJdwAAAAAAAAAABnJ4uNyczSbeAQAAAAAAAAAYyPb2cnM2m3gHAAAAAAAAAGAgL7643JzNJt4BAAAAAAAAABjIN7+53JzNJt4BAAAAAAAAAIAi4h0AAAAAAAAAgIFcuHD8fHt7vXtwOsQ7AAAAAAAAAACDmM+Tb33r+HdXrqx3F06HeAcAAAAAAAAAYBCzWfKd7xz/7qmn1rsLp0O8AwAAAAAAAAAwiP3923vH5hLvAAAAAAAAAAAMYjK5vXdsLvEOAAAAAAAAAMAgLlw4ft5asrOz3l04HeIdAAAAAAAAAIBBPPfc8fPek+l0vbtwOsQ7AAAAAAAAAABQRLwDAAAAAAAAAABFxDsAAAAAAAAAAIM4e/b4+fnz692D0yPeAQAAAAAAAAAYwHyeHB4e/+769fXuwukR7wAAAAAAAAAADGA2O/ndZLK+PThd4h0AAAAAAAAAgAHs75/8bmdnfXtwusQ7AAAAAAAAAAADOOl2ne3tZDpd7y6cHvEOAAAAAAAAAMAA3vKW4+dXrqx3D06XeAcAAAAAAAAAYAAf/OByc8Yg3gEAAAAAAAAAGMBXv7rcnDGIdwAAAAAAAAAAoIh4BwAAAAAAAABgANvby80Zg3gHAAAAAAAAAGAAV64sN2cM4h0AAAAAAAAAgAE89dRyc8Yg3gEAAAAAAAAAGMD+/nJzxiDeAQAAAAAAAAAYwH33HT+/eHG9e3C6xDsAAAAAAAAAABvu0UeTF1+s3oJVEO8AAAAAAAAAAGy43d2T373wwvr24PSJdwAAAAAAAAAANtzh4cnvJpP17cHpE+8AAAAAAAAAAAxsZ6d6A+6EeAcAAAAAAAAAYGDTafUG3AnxDgAAAAAAAAAAFBHvAAAAAAAAAABAEfEOAAAAAAAAAMCGu+++4+fb2+vdg9Mn3gEAAAAAAAAA2GCPPpp8+9vfPW8teeyx9e/D6RLvAAAAAAAAAABssN3dk99Np+vbg9UQ7wAAAAAAAAAAbLDDw+Pnva93D1ZDvAMAAAAAAAAAAEXEOwAAAAAAAAAAUES8AwAAAAAAAAAARcQ7AAAAAAAAAAAbaj4/+d2FC+vbg9UR7wAAAAAAAAAAbKjZ7OR3Tzyxvj1YHfEOAAAAAAAAAMCG2ts7+d10+r/s3UFonGme3/H/K2kElucgj5kNW8p2J7B7SNUp0GwCOVYFcttcAoGy8UCGxlUJOJBLWJ8Newr4kNK4SZoxqxdCIIHMYSGkRC65hF1CIEhzSAi4M9KSDF6bxG33ri2/Ocie9rRVpSpVve/zvlWfD4hp63mr9IO5fnne6nZQHvEOAAAAAAAAAEBNbW7O93uaR7wDAAAAAAAAAFBTZ2fz/Z7mEe8AAAAAAAAAANTU978/3+9pHvEOAAAAAAAAAEBNvXgx3+9pHvEOAAAAAAAAAEANDYepF1AF8Q4AAAAAAAAAQA09epR6AVUQ7wAAAAAAAAAA1EyeR7x9O/n8+vXqtlAu8Q4AAAAAAAAAQM3cvz/93K08q0O8AwAAAAAAAABQM0+eTD/v96vZQfnEOwAAAAAAAAAANbO5ebUzmke8AwAAAAAAAABQM2dnk88+/7y6HZRPvAMAAAAAAAAAUDPTbtcZjarbQfnEOwAAAAAAAAAANTPt5h1Wi3gHAAAAAAAAAKBmbt6c7/c0l3gHAAAAAAAAAAASEe8AAAAAAAAAANTMn/3ZfL+nucQ7AAAAAAAAAAA1c/36xb//wQ+q3UH5xDsAAAAAAAAAADWS5xEvXqReQVXEOwAAAAAAAAAANXL//uQzr81aPeIdAAAAAAAAAIAaefJk8tknn1S3g2qIdwAAAAAAAAAAamRzc/LZgwfV7aAa4h0AAAAAAAAAgBo5O5t81u9Xt4NqiHcAAAAAAAAAACAR8Q4AAAAAAAAAACQi3gEAAAAAAAAAqInhMPUCqibeAQAAAAAAAACoiS++SL2Aqol3AAAAAAAAAABq4uxs8tmnn1a3g+qIdwAAAAAAAAAAamJjSsnx4EF1O6iOeAcAAAAAAAAAoCay7OLfb25G9PvVbqEa4h0AAAAAAAAAgBrI88mvzZr2Oi2aTbwDAAAAAAAAAFAD9+6lXkAK4h0AAAAAAAAAgBp4+jT1AlIQ7wAAAAAAAAAA1NzNm6kXUBbxDgAAAAAAAABAzT18mHoBZRHvAAAAAAAAAADUXL+fegFlEe8AAAAAAAAAACSW55PPrl+vbgfVE+8AAAAAAAAAACR2797ks5cvq9tB9cQ7AAAAAAAAAACJPX06+eyTT6rbQfXEOwAAAAAAAAAANfbgQeoFlEm8AwAAAAAAAABQY/1+6gWUSbwDAAAAAAAAAACJiHcAAAAAAAAAABLK88lnWVbdDtIQ7wAAAAAAAAAAJHT37uSzoqhuB2mIdwAAAAAAAAAAEnrxYvLZp59Wt4M0xDsAAAAAAAAAADX14EHqBZRNvAMAAAAAAAAAkMiNG9PP+/1qdpCOeAcAAAAAAAAAIIE8j3j+PPUKUhPvAAAAAAAAAAAkcP/+9PObN6vZQVriHQAAAAAAAACABJ48mX7+8GE1O0hLvAMAAAAAAAAAULFOZ/r57m5Ev1/NFtIS7wAAAAAAAAAAVOz4ePr5s2fV7CA98Q4AAAAAAAAAQIWGw9QLqBPxDgAAAAAAAABARfI8Yn8/9QrqRLwDAAAAAAAAAFCRu3cvf2YwKH8H9SHeAQAAAAAAAACoyIsX08+73YjRqJot1IN4BwAAAAAAAACgAnl++TPjcfk7qBfxDgAAAAAAAABABe7dm37eblezg3oR7wAAAAAAAAAAVODp0+nnR0fV7KBexDsAAAAAAAAAAIkNBqkXkIp4BwAAAAAAAACgAtevX/z77e2I0ajaLdSHeAcAAAAAAAAAoGR5HvH11xef/fZvV7uFehHvAAAAAAAAAACU7N69yWfHx9XtoH7EOwAAAAAAAAAAJXv6NPUC6kq8AwAAAAAAAAAAiYh3AAAAAAAAAABKlOfTz7vdanZQT+IdAAAAAAAAAIAS/fjH08/H42p2UE/iHQAAAAAAAACAEn3zTeoF1Jl4BwAAAAAAAAAgkZs3Uy8gNfEOAAAAAAAAAEAiDx+mXkBq4h0AAAAAAAAAgJL0epPP2u2Ifr+6LdSTeAcAAAAAAAAAoCSHh5PPjo6q20F9iXcAAAAAAAAAACAR8Q4AAAAAAAAAACQi3gEAAAAAAAAAgETEOwAAAAAAAAAAJcjzyWebm9XtoN7EOwAAAAAAAAAAJbh3b/LZ559Xt4N6E+8AAAAAAAAAAJTg6dPJZ6NRdTuoN/EOAAAAAAAAAAAkIt4BAAAAAAAAAFiyXi/1AppCvAMAAAAAAAAAsGSHh6kX0BTiHQAAAAAAAACAJRoOp59fv17NDppBvAMAAAAAAAAAsESPHi12znoR7wAAAAAAAAAALNHbt9PP+/1qdtAM4h0AAAAAAAAAgIoMBqkXUDfiHQAAAAAAAACAJdrevvj3WRYxGlW7hfoT7wAAAAAAAAAALFGWXfz7nZ1qd9AM4h0AAAAAAAAAgCXJ84g///OLz77+utotNIN4BwAAAAAAAABgSe7fT72AphHvAAAAAAAAAAAsyZMnk89u3qxuB80h3gEAAAAAAAAAqMDDh6kXUEfiHQAAAAAAAACACvT7qRdQR+IdAAAAAAAAAABIRLwDAAAAAAAAALAkrdbFv2+3q91Bc4h3AAAAAAAAAACWIM8jTk8vPvv662q30BziHQAAAAAAAACAJbhzZ/LZV19Vt4NmEe8AAAAAAAAAACxoOIw4O5t8/skn1W2hWcQ7AAAAAAAAAAAL2t+ffv7gQTU7aB7xDgAAAAAAAADAAvL88mf6/fJ30EziHQAAAAAAAACABdy+Pf18e7uaHTSTeAcAAAAAAAAA4Ip6vYiimP7Ml19Ws4VmEu8AAAAAAAAAAFzR4eH083bbK7OYTrwDAAAAAAAAAHAFw+Hlzxwdlb+DZhPvAAAAAAAAAABcwU9+Mv283a5mB80m3gEAAAAAAAAAmFOeRxTF9GfcusMsxDsAAAAAAAAAAHO6f3/6+c2b1eyg+cQ7AAAAAAAAAABz+uqr6ecPH1azg+YT7wAAAAAAAAAAzOkHP5h+3u9Xs4PmE+8AAAAAAAAAAMzpm28mnw0G1e2g+cQ7AAAAAAAAAABz+vrryWejUXU7aD7xDgAAAAAAAADAHIbD1AtYJeIdAAAAAAAAAIA57O+nXsAqEe8AAAAAAAAAAMwoz6efZ1k1O1gd4h0AAAAAAAAAgBn96EfTz+/erWQGK0S8AwAAAAAAAAAwgzyPePNm+jOjUTVbWB3iHQAAAAAAAACAGdy5M/28261mB6tFvAMAAAAAAAAAcIlOJ+LsbPoz43E1W1gt4h0AAAAAAAAAgCnyPOL4ePoz29vVbGH1iHcAAAAAAAAAAKa4f//yZ778svwdrKYk8U6WZb+VZdl/zLLs51mWHWVZdu/d73+QZdl/yLLsv7/73xsp9gEAAAAAAAAAvPfVV9PPt7cj+v1qtrB6Ut288yYi/klRFH8tIv5mRPzDLMvaEfFPI+KwKIrfiYjDd/8GAAAAAAAAAKgtt+6wiCTxTlEUf1oUxX9599//LyJ+HhF7EfF7EfH43WOPI+LvptgHAAAAAAAAABARMRxGFMXk827XrTssJtXNO7+SZdlfiYi/HhH/OSL+UlEUfxpxHvhExG+kWwYAAAAAAAAArLuf/GT6+XhczQ5WV9J4J8uy70fEv4mIf1wUxf+d43OfZ1n2J1mW/ckvf/nL8gYCAAAAAAAAAGtt2q07sAzJ4p0sy74X5+FOXhTFv3336/+dZdlvvjv/zYj4Pxd9tiiKL4qi+Kwois9++MMfVjMYAAAAAAAAAFgreT79vN2uZgerLUm8k2VZFhH/MiJ+XhTFP/vg6GcRcefdf9+JiH9X9TYAAAAAAAAAgIiI+/ennx8dVbOD1baV6O/+rYi4HRH/Lcuy//rud78fEX8QEf86y7J/EBFfRcTfS7QPAAAAAAAAAFhzT56kXsA6SBLvFEXxnyIim3DcrXILAAAAAAAAAMB39XrTzz/9tJodrL4kr80CAAAAAAAAAKizw8Pp5w8eVLOD1SfeAQAAAAAAAACYU7+fegGrQrwDAAAAAAAAAPCBPJ9+vr1dzQ7Wg3gHAAAAAAAAAOAD9+5NP//yy2p2sB7EOwAAAAAAAAAAH3j6dPJZt+uVWSyXeAcAAAAAAAAAYEbjceoFrBrxDgAAAAAAAADAO3meegHrRrwDAAAAAAAAAPDOvXupF7BuxDsAAAAAAAAAAO88fZp6AetGvAMAAAAAAAAAMIMsS72AVSTeAQAAAAAAAACIiBs3pp/fvVvNDtaLeAcAAAAAAAAAWHvDYcTz59OfGY2q2cJ6Ee8AAAAAAAAAAGvv0aPUC1hX4h0AAAAAAAAAYO29fTv9fHOzmh2sH/EOAAAAAAAAALDWOp3Ln/n88/J3sJ62Ug8AAAAAAAAAAEhlby/i9HT6M91uxGhUzR7Wj5t3AAAAAAAAAIC1NEu4ExExHpe/hfUl3gEAAAAAAAAA1s6s4c5gUP4W1pt4BwAAAAAAAABYK8PhbOFOhNdlUT7xDgAAAAAAAACwVh49mu25drvcHRAh3gEAAAAAAAAA1szbt5c/s7sbcXRU/hYQ7wAAAAAAAAAAayPPL3+m1Yp49qz8LRAh3gEAAAAAAAAA1siPfzz9vN2OODmpZgtEiHcAAAAAAAAAgDXyzTfTz70qi6qJdwAAAAAAAACAtTAcTj+/ebOaHfAh8Q4AAAAAAAAAsPLyPGJ/f/ozDx9WswU+JN4BAAAAAAAAAFbe3buXP9Pvl78Dvku8AwAAAAAAAACsvBcvpp9/+mk1O+C7xDsAAAAAAAAAwNp78CD1AtaVeAcAAAAAAAAAWGm93vTzVssrs0hHvAMAAAAAAAAArLTDw+nnJyfV7ICLiHcAAAAAAAAAgJW1szP9fDCoZgdMIt4BAAAAAAAAAFZSpxPx6tX0Z0ajarbAJOIdAAAAAAAAAGDl9HoRx8epV8DlxDsAAAAAAAAAwErJ84jDw8uf88os6kC8AwAAAAAAAACslFu3Ln/m2jWvzKIexDsAAAAAAAAAwMrY25vtuZcvy90BsxLvAAAAAAAAAAArIc8jTk8vf67bLX8LzEq8AwAAAAAAAACshLt3L39mdzdiPC5/C8xKvAMAAAAAAAAArIQXL6afX7sW8exZNVtgVuIdAAAAAAAAAKDx9vYuf+bly/J3wLzEOwAAAAAAAABAow2HEaen0585OKhmC8xLvAMAAAAAAAAANFaeR+zvX/5cv1/+FrgK8Q4AAAAAAAAA0Fh3717+zGBQ/g64KvEOAAAAAAAAANBIe3sRL15c/txoVP4WuCrxDgAAAAAAAADQOL1exOnp5c8dHJS/BRYh3gEAAAAAAAAAGufw8PJnWq2Ifr/8LbAI8Q4AAAAAAAAA0Cg7O7M9d3JS7g5YBvEOAAAAAAAAANAYvV7Eq1eXP9ftlr8FlkG8AwAAAAAAAAA0Qp7P9rqs3d2I8bj8PbAM4h0AAAAAAAAAoBHu3bv8mVYr4tmz8rfAsoh3AAAAAAAAAIBGePp0+vm1axEnJ9VsgWUR7wAAAAAAAAAAtdfpXP7My5fl74BlE+8AAAAAAAAAALWW5xHHx9Of6Xar2QLLJt4BAAAAAAAAAGprOIy4devy58bj8rdAGbZSDwAAAAAAAAAAuMjOTsSrV5c/d/16+VugLOIdAAAAAAAAAKB2smz2Zx89Km8HlM1rswAAAAAAAACAWtnenv3Zbjei3y9vC5RNvAMAAAAAAAAA1MbeXsTr17M/Px6XtwWqIN4BAAAAAAAAAGqh14s4PZ39+cGgvC1QFfEOAAAAAAAAAJBcrxdxeDj784NBxGhU3h6oylbqAQAAAAAAAADAehsOZw93ul2vymK1iHcAAAAAAAAAgKT292d7rijK3QEpeG0WAAAAAAAAAJBMrzfbc4NBuTsgFfEOAAAAAAAAAJDMLK/LarUiRqPyt0AK4h0AAAAAAAAAIIkbNy5/Znc34uSk/C2QylbqAQAAAAAAAADA+tnejnj9evozu7sRz55VswdScfMOAAAAAAAAAFCZXi8iyy4PdyKEO6wH8Q4AAAAAAAAAUIleL+LwcLZnb94sdwvUhXgHAAAAAAAAAKjErOFORMTDh+XtgDoR7wAAAAAAAAAApRoOz1+VNat2O6LfL28P1MlW6gEAAAAAAAAAwGoaDiP29+f7TLsdcXRUzh6oI/EOAAAAAAAAALB0OzsRr17N95nBIGI0KmcP1JXXZgEAAAAAAAAAS5Pn56/ImifcybKIgwPhDuvJzTsAAAAAAAAAwFLkecStW/N/7u3b5W+BpnDzDgAAAAAAAACwFHfuzP+Zg4Pl74AmEe8AAAAAAAAAAAsbDiPOzub7zMFBRL9fzh5oCq/NAgAAAAAAAAAW0ulEHB/P/ny3GzEel7cHmkS8AwAAAAAAAABc2eZmxNu3sz0r2oGPiXcAAAAAAAAAgCvJstmfLYrydkCTbaQeAAAAAAAAAAA0z87O7M8eHJS3A5pOvAMAAAAAAAAAzGw4PL9x59Wr2Z7f3o7o98vdBE3mtVkAAAAAAAAAwEw6nYhZjoahAAAcmklEQVTj4/k+8+WX5WyBVeHmHQAAAAAAAADgUvOGO1l2/rost+7AdG7eAQAAAAAAAACmmjfcEe3A7MQ7AAAAAAAAAMBEOzsRr17N/nxRlLcFVpHXZgEAAAAAAAAAF5o33Ol2y9sCq0q8AwAAAAAAAAB8ZG9v/nBnPC5vD6wqr80CAAAAAAAAAH7NPDfu7O5GPHtW7h5YZW7eAQAAAAAAAAB+ZZ4bd4Q7sDjxDgAAAAAAAAAQERF5HnF6Otuzwh1YDvEOAAAAAAAAABARET/60WzPdbvCHVgW8Q4AAAAAAAAAEJ1OxJs3lz83GESMx+XvgXUh3gEAAAAAAACANTYcRmRZxPHx5c+22xGjUfmbYJ1spR4AAAAAAAAAAKSxsxPx6tVsz3a7btyBMrh5BwAAAAAAAADWTKdzftvOrOFOhHAHyuLmHQAAAAAAAABYIzduRDx/Pt9nBoNytgBu3gEAAAAAAACAtbG3N3+402pFjEbl7AHEOwAAAAAAAACw8vL8/DVZp6fzfW53N+LkpJxNwDnxDgAAAAAAAACssF4v4tat+T/X7UY8e7b8PcCv20o9AAAAAAAAAAAox85OxKtX832m240Yj8vZA3zMzTsAAAAAAAAAsEJ6vfNXZGXZfOHO7m5EUQh3oGriHQAAAAAAAABYAZ3OebBzeDj/Z9ttr8iCVMQ7AAAAAAAAANBg72/aOT6+2udbrYijo+VuAmYn3gEAAAAAAACAhnl/y85Vb9p5bzCIODlZ3i5gflupBwAAAAAAAAAAsxkOI/b3F/+e3V2vyYK6EO8AAAAAAAAAQAN0Old/NdaHut2I8Xjx7wGWQ7wDAAAAAAAAADXX6y0e7rRaXpEFdbSRegAAAAAAAAAAMNmNGxGHh1f//GAQURTCHagr8Q4AAAAAAAAA1FCvF5FlEc+fz//ZLIs4ODiPdkaj5W8Dlke8AwAAAAAAAAA1MRyehzdZdvXbdgaDiLdvI/r95W4DyrGVegAAAAAAAAAAcP56rKvesvOHfyjWgaZy8w4AAAAAAAAAJPT+tp2rhDutllt2oOncvAMAAAAAAAAAiezsRLx6dbXPXrsWcXKy3D1A9dy8AwAAAAAAAAAVyfOIjY3zm3ay7OrhTrsd8fLlcrcBabh5BwAAAAAAAAAqMBxG7O8v9h3Xrol2YNW4eQcAAAAAAAAAStTrnd+ys2i4MxgId2AVuXkHAAAAAAAAAEqyvR3x+vXVP99uRxwdLW8PUD9u3gEAAAAAAACAJcrziI2N89t2Fgl3Dg6EO7AO3LwDAAAAAAAAAEswHC7+aqyIiG43Yjxe/HuAZhDvAAAAAAAAAMCCer2Iw8PFvsMrsmA9iXcAAAAAAAAA4IoWjXa+972Iv/iL5e0Bmmcj9QAAAAAAAAAAaJrhMCLLFgt32m3hDiDeAQAAAAAAAICZ9HrnwU6WRezvX/17BoOIovCKLOCc12YBAAAAAAAAwAR5HnH79nlss6hWK+LkZPHvAVaLm3cAAAAAAAAA4Dvevxbr1q3Fw512+/w7hDvARdy8AwAAAAAAAACx3Ft2IiKuXYt4+XI53wWsLjfvAAAAAAAAALDWlnnLznvttnAHmI2bdwAAAAAAAABYW3t7Eaeny/u+wSBiNFre9wGrz807AAAAAAAAAKyVPI/Y2Di/bWdZ4U63e35rj3AHmJebdwAAAAAAAABYGzduRDx/vpzvcssOsAxu3gEAAAAAAABgpQ2H57fsZNni4U67fX7Djlt2gGVx8w4AAAAAAAAAK6nTiTg+Xs53dbsR4/FyvgvgQ27eAQAAAAAAAGBlfHjLzqLhTrf77S07wh2gLG7eAQAAAAAAAKDR8jzi9u3zyGYZWq2Ik5PlfBfAZdy8AwAAAAAAAEBj3bgRcevW8sKdwUC4A1RLvAMAAAAAAABAY3z4Wqwsi3j+fPHvbLe/fT3WaLT49wHMw2uzAAAAAAAAAKi1Xi/i8HD53+v1WEAduHkHAAAAAAAAgNr47s06Wbb8cKfbPb9lR7gD1IGbdwAAAAAAAABIbm8v4vS0vO/f3Ix4/Dii3y/vbwBchZt3AAAAAAAAAKhcnkdsbHx7u05Z4c77W3bevBHuAPXk5h0AAAAAAAAAStfrLf/1V5O02xFHR9X8LYBFiXcAAAAAAAAAWLoqY533Wq2Ik5Nq/ybAorw2CwAAAAAAAICFDYffvgIry6oLd96/FqsohDtAM4l3AAAAAAAAALiSPI/Y2DiPdfb3q/u7g8G3wc54XN3fBSiD12YBAAAAAAAAMJM8j7h9+zyaqUq3K9ABVpt4BwAAAAAAAICJOp2I4+Nq/2ar5RVYwPoQ7wAAAAAAAADwK3t7Eaen1f/ddjvi6Kj6vwuQ2kbqAQAAAAAAAACkMxxGZNm3P1WFO4PB+eu33v8Id4B15eYdAAAAAAAAgDWS6madwSBiNKr+7wLUnXgHAAAAAAAAYIWlinW63YjxuPq/C9A04h0AAAAAAACAhut0Io6PU6+IaLe9/gpgXhupBwAAAAAAAAAwm04nIss+/kkV7nS7EUXx7Y9wB2B+4h0AAAAAAACAGroo1El9u87mZsTBwbexjtdiASzOa7MAAAAAAAAAEqnL664mabUiTk5SrwBYbW7eAQAAAAAAAChZnkdsbNTvJp2LfPgqLOEOQPncvAMAAAAAAACwJMNhxP5+6hWzc7MOQHriHQAAAAAAAIA55XnE7dvnt9M0iVgHoH68NgsAAAAAAABggk7n41ddZVnErVv1DXe2tiIODr599dWHP8IdgPoR7wAAAAAAAABrazi8OM55/3N8nHrhZJubF0c6r19H9Pup1wEwK6/NAgAAAAAAAFZSU19tdZHNzYjHj0U5AKtIvAMAAAAAAAA03t5exOlp6hWLEegArCevzQIAAAAAAABqL88jtrYmv96qaeFOu/3x667evBHuAKwj8Q4AAAAAAACQ3HA4OczJsohbtyLOzlKvnF+3+3GkUxQRR0eplwFQF16bBQAAAAAAAJQmzyNu3z4PVlZZuy3IAeBqxDsAAAAAAADAXDqdiOPj1Cuqt7UV8dOferUVAMvltVkAAAAAAADApa+t+vBnlcOdSa+5KoqI16+FOwAsn5t3AAAAAAAAYIWt6y05F/FqKwDqSLwDAAAAAAAADdHrRRwepl5Rf61WxMlJ6hUAMBvxDgAAAAAAACS0txdxepp6RfO4RQeAVbGRegAAAAAAAAA02XAYkWVX/xHuXKzbjSiKyT/CHQBWhZt3AAAAAAAA4J1OJ+L4OPWK1ebGHAD4dW7eAQAAAAAAoNE6ncVuvvnwR7gzv83NiIOD6bfkuDEHACYT7wAAAAAAAFCpRV8zJbipxmAwW4zz5k1Ev596LQA0l9dmAQAAAAAAMNFwGLG/n3oFy7K5GfH4sdgGAOpEvAMAAAAAANBQeR5x+/b57Sesp8EgYjRKvQIAWIR4BwAAAAAAoCTiGubVakWcnKReAQBUaSP1AAAAAAAAgKrlecTGRkSWlftz65ZwZx11u+f/v1/lR7gDAOvHzTsAAAAAAEByvV7E4WHqFfDrNjcjHj+O6PdTLwEAVpl4BwAAAAAA+IiYhqba2or46U8FNwBAc4h3AAAAAACgpjqdiOPj1CugfN1uxHicegUAQBriHQAAAAAAVtpwGLG/n3oFrA6hDQDAcol3AAAAAAC4lAAGmqHdjjg6Sr0CAIB5iHcAAAAAAGokzyPu3Ik4O0u9BCiDuAYAgO8S7wAAAAAAjdDpRBwfp14BrCpRDQAAqYh3AAAAAKDGBCvAuhoMIkaj1CsAAKB84h0AAAAAam04jNjfT70CADENAACUQ7wDAAAAUBN7exGnp6lXAFBXm5sRjx9H9PuplwAAAMsk3gEAAAAWlucRt29HFEXqJQBwuW43YjxOvQIAAOCceAcAAIDa6fUiDg9TrwAAphHAAAAALId4BwAAaLThMGJ/P/UKAIDytNsRR0epVwAAAFAW8Q4AAMns7UWcnqZeAQBAE21uRjx+HNHvp14CAAAAixHvAAAk5tUwAADMSrACAAAAq0e8AwCsJK/RAQBYXd1uxHicegUAAADAcoh3AIDI84g7dyLOzlIvAQDgvVYr4uQk9QoAAAAAyibeAYCS7O1FnJ6mXgEAkEa7HXF0lHoFAAAAANSfeAeAWsvziNu3I4oi9RIAIKXBIGI0Sr0CAAAAAGD5xDsAK8qtLwCsq243YjxOvQIAAAAAAGYj3gF4R+wCkFarFXFyknoFAAAAAABAtTZSDwCaIc8jtrYismx1f4Q7QF0MBuevilu3H+EOAAAAAACwjty8AyXq9SIOD1OvACDCa3QAAAAAAACop9rFO1mW/Z2IeBgRmxHxL4qi+IPEkyiJVxQB1Fe7HXF0lHoFAAAAAAAArL5axTtZlm1GxD+PiL8dEb+IiD/OsuxnRVEcp13GrAQ5ABdrtbwSCAAAAAAAAPhYreKdiPjdiPgfRVH8z4iILMv+VUT8XkSIdxpAuANUwY0wAAAAAAAAwCqpW7yzFxH/64N//yIi/kaiLcxJuAP15dYXAAAAAAAAgHqqW7yTXfC74qOHsuzziPg8IuKTTz4pexOwhtzuAgAAAAAAAEAV6hbv/CIifuuDf//liPjoPpeiKL6IiC8iIj777LOP4h6gfOIWAAAAAAAAAFjcRuoB3/HHEfE7WZb91SzLtiPi70fEzxJvYkatVuoF9TcYRBTFavwIdwAAAAAAAABgcbW6eacoijdZlv2jiPj3EbEZEV8WRSERaIiTk4i9vYjTj+5Kulyrdf55AAAAAAAAAIB1Uqt4JyKiKIo/iog/Sr2DqxHgAAAAAAAAAADMrm6vzQIAAAAAAAAAgLUh3gEAAAAAAAAAgETEOwAAAAAAAAAAkIh4BwAAAAAAAAAAEhHvAAAAAAAAAABAIuIdAAAAAAAAAABIRLwDAAAAAAAAAACJiHcAAAAAAAAAACAR8Q4AAAAAAAAAACQi3gEAAAAAAAAAgETEOwAAAAAAAAAAkIh4BwAAAAAAAAAAEhHvAAAAAAAAAABAIuIdAAAAAAAAAABIRLwDAAAAAAAAAACJiHcAAAAAAAAAACAR8Q4AAAAAAAAAACQi3gEAAAAAAAAAgETEOwAAAAAAAAAAkIh4BwAAAAAAAAAAEhHvAAAAAAAAAABAIuIdAAAAAAAAAABIRLwDAAAAAAAAAACJiHcAAAAAAAAAACAR8Q4AAAAAAAAAACQi3gEAAAAAAAAAgETEOwAAAAAAAAAAkIh4BwAAAAAAAAAAEhHvAAAAAAAAAABAIuIdAAAAAAAAAABIRLwDAAAAAAAAAACJiHcAAAAAAID/3969B91a1XUA/34B8QaKeZtAR1DJS5qKlzAcddRBUlNLHXEstSgnx0q7eSnLSmfMdLK0tLyFpuMNtRDNS8Z4KUQSRUBEGLyRoDgoKl6R1R97HXs5nnM8B3bnOcfz+cy88+5nPWuvvZ7NwO9dm+9eDwAAsBDhHQAAAAAAAAAAWIjwDgAAAAAAAAAALER4BwAAAAAAAAAAFiK8AwAAAAAAAAAACxHeAQAAAAAAAACAhQjvAAAAAAAAAADAQoR3AAAAAAAAAABgIcI7AAAAAAAAAACwEOEdAAAAAAAAAABYiPAOAAAAAAAAAAAsRHgHAAAAAAAAAAAWIrwDAAAAAAAAAAALEd4BAAAAAAAAAICFCO8AAAAAAAAAAMBChHcAAAAAAAAAAGAhwjsAAAAAAAAAALAQ4R0AAAAAAAAAAFiI8A4AAAAAAAAAACxEeAcAAAAAAAAAABYivAMAAAAAAAAAAAsR3gEAAAAAAAAAgIUI7wAAAAAAAAAAwEKEdwAAAAAAAAAAYCHCOwAAAAAAAAAAsBDhHQAAAAAAAAAAWIjwDgAAAAAAAAAALER4BwAAAAAAAAAAFiK8AwAAAAAAAAAACxHeAQAAAAAAAACAhQjvAAAAAAAAAADAQoR3AAAAAAAAAABgIcI7AAAAAAAAAACwEOEdAAAAAAAAAABYiPAOAAAAAAAAAAAsRHgHAAAAAAAAAAAWIrwDAAAAAAAAAAALEd4BAAAAAAAAAICFdIyx9ByukrYXJfns0vPgh9wgyZeXngQAPxbUFADWSV0BYJ3UFQDWSV0BYJ3UlV3PzcYYN9zSid0+vMOuqe1/jzHusvQ8ANj9qSkArJO6AsA6qSsArJO6AsA6qSu7F7fNAgAAAAAAAACAhQjvAAAAAAAAAADAQoR3+P/y0qUnAMCPDTUFgHVSVwBYJ3UFgHVSVwBYJ3VlN9IxxtJzAAAAAAAAAACAPZKddwAAAAAAAAAAYCHCO6xV26Pant323LZPW3o+AOya2t607Yltz2p7ZtsnzfafaPuetufM39eb7W37wllfPt72sA1jPXb2P6ftY5e6JgCW1Xbvth9te8I8PqTtybM+vKHtvrP96vP43Hn+4A1jPH22n932/stcCQBLa3tA2+PafnKuWe5urQLAldX2d+fnX2e0fV3ba1ivALC92r6y7ZfanrGhbW3rk7Z3bnv6fM4L23bnXiGbCO+wNm33TvL3SX4+yW2TPKrtbZedFQC7qMuS/P4Y4zZJDk/yxFkznpbkvWOMQ5O8dx4nq9py6Px5fJKXJKs/UJM8M8nPJrlbkmdu+iMVgD3Ok5KcteH4uUleMGvKV5IcM9uPSfKVMcYtk7xg9susQ0cn+ekkRyV58VzjALDn+dsk7xxj3DrJHbKqL9YqAOywtgcl+Z0kdxlj3C7J3lmtO6xXANhex2b13/6N1rk+ecnsu+l5m78WO4nwDut0tyTnjjHOG2N8N8nrkzxk4TkBsAsaY1wwxjh1Pv56Vh+GH5RV3XjV7PaqJA+djx+S5NVj5UNJDmj7k0nun+Q9Y4yLxxhfSfKe+MMSYI/T9iZJHpjk5fO4Se6T5LjZZfOasqnWHJfkvrP/Q5K8fozxnTHGp5Ocm9UaB4A9SNvrJLlnklckyRjju2OMr8ZaBYArb58k12y7T5JrJbkg1isAbKcxxvuTXLxZ81rWJ/PcdcYYJ40xRpJXbxiLnUx4h3U6KMnnNxyfP9sAYKvm9r93SnJykhuPMS5IVgGfJDea3bZWY9QeAJLkb5I8Jcnl8/j6Sb46xrhsHm+sDz+oHfP8JbO/mgJAktw8yUVJ/mnejvHlba8daxUAroQxxv8keX6Sz2UV2rkkyUdivQLAVbOu9clB8/Hm7SxAeId12tL978ZOnwUAu422+yV5c5InjzG+tq2uW2gb22gHYA/R9kFJvjTG+MjG5i10HT/inJoCQLLaHeGwJC8ZY9wpyaX5vy3ot0RdAWCr5i1JHpLkkCQHJrl2Vrc02Zz1CgDrsKN1RH3ZhQjvsE7nJ7nphuObJPnCQnMBYBfX9mpZBXdeO8Z4y2z+4tymMfP3l2b71mqM2gPAEUke3PYzWd269z5Z7cRzwNyWPrliffhB7Zjnr5vV1sNqCgDJqh6cP8Y4eR4fl1WYx1oFgCvjfkk+Pca4aIzxvSRvSfJzsV4B4KpZ1/rk/Pl483YWILzDOp2S5NC2h7TdN8nRSY5feE4A7ILmvbpfkeSsMcZfbzh1fJLHzsePTfKvG9of05XDk1wyt4J8V5Ij215vfpPpyNkGwB5ijPH0McZNxhgHZ7UG+Y8xxqOTnJjk4bPb5jVlU615+Ow/ZvvRba/e9pAkhyb58E66DAB2EWOMC5N8vu2tZtN9k3wi1ioAXDmfS3J422vNz8M21RXrFQCuirWsT+a5r7c9fNapx2wYi51snx/dBbbPGOOytr+V1b/8eyd55RjjzIWnBcCu6Ygkv5Lk9LYfm21/lOQvk7yx7TFZfbjxiHnuHUkekOTcJN9M8qtJMsa4uO2zsgqQJslfjDEu3jmXAMAu7qlJXt/22Uk+mlVoNPP3P7c9N6tvsB6dJGOMM9u+MasP0i9L8sQxxvd3/rQB2AX8dpLXzi+nnZfV+mOvWKsAsIPGGCe3PS7JqVmtMz6a5KVJ3h7rFQC2Q9vXJbl3khu0PT/JM7Pe/5fyhCTHJrlmkn+bPyygq8AuAAAAAAAAAACws7ltFgAAAAAAAAAALER4BwAAAAAAAAAAFiK8AwAAAAAAAAAACxHeAQAAAAAAAACAhQjvAAAAAAAAAADAQoR3AAAAABbU9nFt/+4qPP/ebU/Yjn7f2MFx/6ztH1zZeQEAAACwfYR3AAAAAFirtvusYYy91zEXAAAAgF2d8A4AAADAmrW9dtu3tz2t7RltHznb79r2v2b7h9vuP59yYNt3tj2n7V9tGOfItie1PbXtm9ruN9uPavvJth9M8ksb+l9ht5z52gdvYX5/2PaUth9v++cb2v+47dlt/z3JrbZybce2/Ye2H2j7qbYPmu2Pm3N8W5J3d+V5cw6nb3gP9mr74rZntj2h7TvaPnye+0zbP53X9Yi2vzHneVrbN7e91oY5vKTtiW3Pa3uvtq9se1bbY3f8nxgAAADAcq7yt6AAAAAA+CFHJfnCGOOBSdL2um33TfKGJI8cY5zS9jpJvjX73zHJnZJ8J8nZbV80zz0jyf3GGJe2fWqS35vhnpcluU+Sc+eY263tkUkOTXK3JE1yfNt7Jrk0ydFzHvskOTXJR7YyzMFJ7pXkFklObHvL2X73JD8zxri47cPmdd0hyQ2SnNL2/UmOmM+/fZIbJTkrySs3jP3tMcY95lyvP8Z42Xz87CTHJHnR7He9+R48OMnb5ri/Pl/njmOMj+3I+wIAAACwFOEdAAAAgPU7Pcnz2z43yQljjA+0vX2SC8YYpyTJGONrSdI2Sd47xrhkHn8iyc2SHJDktkn+c/bZN8lJSW6d5NNjjHNm/9ckefwOzO3I+fPRebxfVmGe/ZO8dYzxzTnu8dsY441jjMuTnNP2vDmnJHnPGOPi+fgeSV43xvh+ki+2fV+Su872N83nX9j2xM3G3hhGut0M7Rww5/muDefeNsYYbU9P8sUxxulz3mdmFQ4S3gEAAAB2C8I7AAAAAGs2xvhU2zsneUCS57R9d5J/STK28pTvbHj8/aw+s2lWYZhHbezY9o7bGOeyXPE26dfYQp8mec4Y4x83G/fJ2xh3c5v323R86WavsyVba99k4xjHJnnoGOO0to9Lcu8N5za9Z5fniu/f5fGZFwAAALAb2etHdwEAAABgR7Q9MMk3xxivSfL8JIcl+WSSA9vedfbZv+22QiYfSnLEpltStb1W25+a4xzS9haz38Zwz2fma6XtYUkO2cK470rya233m/0OanujJO9P8ottr9l2/yS/sI25PaLtXnMON09y9hb6vD/JI9vu3faGSe6Z5MNJPpjkYfP5N84VAzmb2z/JBW2vluTR2+gHAAAAsNvyLSQAAACA9bt9kue1vTzJ95I8YYzx3baPTPKittdM8q0k99vaAGOMi+ZuM69re/XZ/Iy5q8/jk7y97ZezCsPcbp5/c5LHtP1YklOSfGoL47677W2SnDRvx/WNJL88xji17Ruyut3UZ5N8YBvXd3aS9yW5cZLfHGN8e4610VuT3D3JaVntzPOUMcaFbd+c5L5JzpjzOznJJVt5nT+Z5z+b1a3I9t/GnAAAAAB2Sx1je3dDBgAAAGBP1/bYJCeMMY67CmPsN8b4RtvrZ7UbzxFjjAvXNUcAAACA3YmddwAAAADY2U5oe0CSfZM8S3AHAAAA2JPZeQcAAAAAAAAAABay19ITAAAAAAAAAACAPZXwDgAAAAAAAAAALER4BwAAAAAAAAAAFiK8AwAAAAAAAAAACxHeAQAAAAAAAACAhQjvAAAAAAAAAADAQv4XSGM6HwQWvVgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 2880x2160 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot('x', 'abs_diff', 'bo', data=df_)\n",
    "\n",
    "\n",
    "plt.xlabel('scheduled program')\n",
    "plt.ylabel('abs_diff')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "l=l.load(\"speedup_Adam_batch_norm_True_MSE_nlayers_4_log_False_batch1001-2500_ELU_MSE_inverse\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
